package ik.xcj.hostpital.manage.mapper;

import ik.xcj.hostpital.manage.pojo.vo.DepartmentListItemVO;
import ik.xcj.hostpital.manage.pojo.vo.DepartmentStandardVO;
import ik.xcj.hostpital.manage.pojo.entity.Department;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface IDepartmentMapper {
    /**
     * 插入科室数据
     *
     * @param department 科室数据
     * @return 受影响行数
     */
    int insert(Department department);

    /**
     * 批量增加科室数据
     *
     * @param  departmentList 若干科室id的集合
     * @return 受影响的行数
     */
    int insertBatch(List<Department> departmentList);

    /**
     * 根据id删除科室信息数据
     *
     * @param id 科室信息id
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 批量删除科室数据
     *
     * @param ids 若干科室id的集合
     * @return 受影响的行数
     */
    int deleteByIds(Long[] ids);

    /**
     * 修改科室数据
     *
     * @param department 封装了被修改科室的id
     * @return 受影响的行数
     */
    int update(Department department);

    /**
     * 统计科室的数据
     * @return 科室的数量
     */
    int count();

    /**
     * 根据科室名称统计数据的数量
     *
     * @param depname 品牌名称
     * @return 匹配名称的品牌数据的数量
     */
    int countByDepname(String depname);

    /**
     * 根据科室id查询科室详情
     *
     * @param id 科室id
     * @return 匹配的科室详情，如果没有匹配的数据，则返回null
     */
    DepartmentStandardVO getStandardById(Long id);

    /**
     * 根据科室名称查询科室详情
     *
     * @param depname 科室depname
     * @return 匹配的科室详情，如果没有匹配的数据，则返回null
     */
    DepartmentStandardVO getStandardByDepname(String depname);

    /**
     * 查询科室列表
     *
     * @return 科室列表
     */
    List<DepartmentListItemVO> list();
}
